package com.zzyl.common.utils;

import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.core.auth.Auth;
import com.baidubce.qianfan.model.chat.ChatResponse;
import com.zzyl.common.config.BaiduQianfanProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class BaiduQianfanUtils {
    @Autowired
    private BaiduQianfanProperties baiduQianfanProperties;

    public String qianfanInvoker(String prompt) {
        log.info("传入的信息{}" ,prompt);
        Qianfan qianfan = new Qianfan(Auth.TYPE_OAUTH, baiduQianfanProperties.getApiKey(), baiduQianfanProperties.getSecretKey());
        ChatResponse response = qianfan.chatCompletion()
                .model(baiduQianfanProperties.getCustomEndpoint()) // 模型名称，要选择自己开通付费的模型
                .addMessage("user", prompt) // 聊天内容，可以设置多个，每个消息包含role（角色，user表示用户，assistant表示模型），content（消息内容）
                .temperature(0.8) // 采样参数，取值范围(0,1]
                .maxOutputTokens(2000) // 模型输出最大长度，取值范围[2, 2048]
                .responseFormat("json_object")  // 模型输出格式，取值范围：text（文本）、json_object（JSON对象）
                .execute();
        String result = response.getResult();

        return result;


    }

}
